/**
 * @flow
 */

////////////////////////////////////////////////////////////
// == Import Declared Type Alias From Declared Module == //
//////////////////////////////////////////////////////////
import type {baz} from "ModuleAliasFoo";
import {foo} from "ModuleAliasFoo";
var k1: baz = 42;
var k2: baz = "shab"; // Error: string to int
var k3: toz = foo(k1); // works

import type {toz} from "ModuleAliasFoo";
var k4: toz = foo(k1); // works

//////////////////////////////////////////////////////////
// == Declared Module with exports prop (issue 880) == //
////////////////////////////////////////////////////////

import blah from 'foo';
import type { Foo, Bar, Id } from 'foo';

blah(0, 0);

({toz:3} : Foo); // error : {toz : number} ~> string

(3 : Bar); // error : number ~> A

("lol" : Id<number>); // error : string ~> number
